﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Chilis.Marketing.Common;
using Chilis.Marketing.Business.Logic;
using Chilis.Marketing.Business.Entity;

public partial class Manto_DetUnidad : System.Web.UI.Page
{
    #region ATRIBUTOS

    private Constantes.ACCION accion;
    private BLUnidad unidadBL;

    #endregion

    #region PROPIEDADES
    #endregion

    #region METODOS

    private void ActivarControles(bool activo)
    {
        this.txtCodigo.Enabled = false;
        this.txtDescripcion.Enabled = activo;
    }

    private void CargarDatos(int idUnidad)
    {
        this.unidadBL = new BLUnidad();
        BEUnidad unidadBE = this.unidadBL.obtenerUnidadPorId(idUnidad);
        if (unidadBE != null)
        {
            this.txtCodigo.Text = unidadBE.IdUnidad.ToString().PadLeft(5, '0');
            this.txtDescripcion.Text = unidadBE.Descripcion.ToString();
        }
    }

    private BEUnidad ObtenerUnidadBE_WebForm()
    {
        BEUnidad unidadBE = new BEUnidad();
        if (this.txtCodigo.Text != "")
        {
            int tempIdUnidad = Constantes.idValorNulo;
            int.TryParse(this.txtCodigo.Text, out tempIdUnidad);
            unidadBE.IdUnidad = tempIdUnidad;
        }
        unidadBE.Descripcion = this.txtDescripcion.Text.Replace("'", "''");

        unidadBE.Order_by = (char)Constantes.ORDENAR_POR.CODIGO;
        unidadBE.De_forma = (char)Constantes.DE_FORMA.ASCENDENTE;

        return unidadBE;
    }

    private void CargarTitulos(string tituloTxt)
    {
        this.lblTitulo.Text = tituloTxt;
    }

    #endregion

    #region EVENTOS

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!Page.IsPostBack)
            {

                Constantes.ACCION accion = Constantes.ACCION.NINGUNO;
                if (Request.QueryString["acc"] != null)
                {
                    accion = Constantes.ObtenerEnumAccion(Request.QueryString["acc"]);
                }

                switch (accion)
                {
                    case Constantes.ACCION.NINGUNO:
                        break;
                    case Constantes.ACCION.VER:
                        this.CargarTitulos(Mensajes.txtTitulo_UnidadVer);
                        this.btnGuardar.Visible = false;
                        if (Request.QueryString["id"] != null)
                        {
                            int idUnidad = int.Parse(Request.QueryString["id"].ToString());
                            this.CargarDatos(idUnidad);
                            this.ActivarControles(false);
                        }
                        break;
                    case Constantes.ACCION.NUEVO:
                        this.CargarTitulos(Mensajes.txtTitulo_UnidadNuevo);
                        this.ActivarControles(true);
                        break;
                    case Constantes.ACCION.MODIFICAR:
                        this.CargarTitulos(Mensajes.txtTitulo_UnidadModificar);
                        if (Request.QueryString["id"] != null)
                        {
                            int idUnidad = int.Parse(Request.QueryString["id"].ToString());
                            this.CargarDatos(idUnidad);
                            this.ActivarControles(true);
                        }
                        break;
                    case Constantes.ACCION.ELIMINAR:
                        this.CargarTitulos(Mensajes.txtTitulo_UnidadEliminar);
                        if (Request.QueryString["id"] != null)
                        {
                            int idUnidad = int.Parse(Request.QueryString["id"].ToString());
                            this.CargarDatos(idUnidad);
                            this.ActivarControles(false);
                        }
                        break;
                    case Constantes.ACCION.ASOCIAR:
                        break;
                    case Constantes.ACCION.APROBAR:
                        break;
                    case Constantes.ACCION.GENERAR_REPORTE:
                        break;
                    default:
                        break;
                }
            }
        }
        catch (Exception ex)
        {
            Response.Redirect("~/Error.aspx?titError=" + Mensajes.msjeError_MostrarDetalle + "&descError=" + ex.Message, false);
        }
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("Unidad.aspx");
    }

    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        try
        {
            Constantes.ACCION accion = Constantes.ACCION.NINGUNO;
            if (Request.QueryString["acc"] != null)
            {
                accion = Constantes.ObtenerEnumAccion(Request.QueryString["acc"]);
            }
            //if (!ValidarDatosIngreso())
            //{
            //    return;
            //}

            this.unidadBL = new BLUnidad();
            BEUnidad unidadBE = this.ObtenerUnidadBE_WebForm();
            string msjeError = "";
            string msjeExitoOperacion = "";
            string msjeErrorOperacion = "";
            bool result = false;

            switch (accion)
            {
                case Constantes.ACCION.NINGUNO:
                    break;
                case Constantes.ACCION.VER:
                    break;
                case Constantes.ACCION.NUEVO:
                    msjeErrorOperacion = Mensajes.msjeError_InsertarRegistro;
                    msjeExitoOperacion = Mensajes.msjeExito_InsertarRegistro;
                    result = this.unidadBL.insertarUnidad(unidadBE);
                    break;
                case Constantes.ACCION.MODIFICAR:
                    msjeErrorOperacion = Mensajes.msjeError_ModificarRegistro;
                    msjeExitoOperacion = Mensajes.msjeExito_ModificarRegistro;
                    result = this.unidadBL.modificarUnidad(unidadBE);
                    break;
                    break;
                case Constantes.ACCION.ELIMINAR:
                    msjeErrorOperacion = Mensajes.msjeError_EliminarRegistro;
                    msjeExitoOperacion = Mensajes.msjeExito_EliminarRegistro;
                    unidadBE.Estado = Constantes.ESTADO.INACTIVO;
                    result = this.unidadBL.eliminarUnidad(unidadBE);
                    break;
                case Constantes.ACCION.ASOCIAR:
                    break;
                case Constantes.ACCION.APROBAR:
                    break;
                case Constantes.ACCION.GENERAR_REPORTE:
                    break;
                default:
                    break;
            }

            if (result == false)
            {
                Response.Redirect("~/Error.aspx?titError=" + Mensajes.msjeError_General + "&descError=" + msjeError, false);
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "Mensaje de Confirmación", "<script language='JavaScript'>alert('" + msjeExitoOperacion + "');window.location.href ='Unidad.aspx';</script>");
            }

        }
        catch (Exception ex)
        {
            Response.Redirect("~/Error.aspx?titError=" + Mensajes.msjeError_General + "&descError=" + ex.Message, false);
        }
    }

    #endregion


    
}